pthread_t audio_init();

void audio_exit();
void audio_playback( bool relative_on, int list_offset, int file_offset );
void audio_pause();
void audio_stop();
void audio_volume( bool relative_on, int volume_offset, bool mute_on );
void audio_seek( bool relative_on, int seek_offset );
void list_add( char *dir, char *list_name );
void list_del( int offset );
void list_clear_status();
void change_output( char *name );

char * ENTRY_name( entry_s *ety );
char * ENTRY_file_name( entry_s *ety );
int ENTRY_size( entry_s *ety );
format_e ENTRY_format( entry_s *ety );
long ENTRY_bit_rate( entry_s *ety );
long ENTRY_duration( entry_s *ety );
int ENTRY_channels( entry_s *ety );
int ENTRY_channel_layout( entry_s *ety );
int ENTRY_sample_rate( entry_s *ety );
sample_format_e ENTRY_sample_format( entry_s *ety );
char * ENTRY_title( entry_s *ety );
char * ENTRY_artist( entry_s *ety );
char * ENTRY_album( entry_s *ety );

int LIST_end_list();
int LIST_cur_list();
char * LIST_dir_name( unsigned int l_off );
char * LIST_list_name( unsigned int l_off );
unsigned int LIST_cur_entry( unsigned int l_off );
struct entry * LIST_entry_array( unsigned int l_off, unsigned int e_off );
unsigned int LIST_total_entries_number( unsigned int l_off );
unsigned int LIST_sequence( unsigned int l_off, unsigned int e_off );

int STATUS_flags( const char *status_mask );
entry_s * STATUS_now_playing();
int STATUS_volume();
bool STATUS_mute_on();
int STATUS_position();
entry_s * STATUS_now_adding();
entry_s * STATUS_now_deling();

char *DRIVER_lib( int offset );
char *DRIVER_lib_using();